
#include"../logs/maglog.h"
#include <cstdlib>
#include <iostream>

void testNetworkDelay()
{
    LOGI("开始网络延迟测试");

    // 删除现有的 netem 规则，防止冲突
    std::string deleteCommand = "sudo tc qdisc del dev eth0 root";
    int deleteResult = system(deleteCommand.c_str());
    if (deleteResult == 0) {
        LOGI("成功删除现有的网络延迟规则");
    } else {
        LOGW("未找到现有的网络延迟规则，可能未设置或已被删除");
    }

    // 添加新的网络延迟规则
    std::string command = "sudo tc qdisc add dev eth0 root netem delay 100ms";
    int addResult = system(command.c_str());
    if (addResult == 0) {
        LOGI("成功引入100ms的网络延迟");
    } else {
        LOGE("无法引入网络延迟，命令执行失败");
    }

    // 打印当前的网络配置
    std::string showCommand = "sudo tc qdisc show dev eth0";
    LOGI("当前网络配置如下：");
    int showResult = system(showCommand.c_str());
    if (showResult != 0) {
        LOGE("无法显示当前的网络配置");
    }

    LOGI("网络延迟测试结束");
}

int main(){
    // 执行网络延迟测试
    testNetworkDelay();

    return 0;
}


// #include "../logs/maglog.h"
// #include <cstdlib>

// void testNetworkDelay() {
//     LOGI("开始网络延迟测试");

//     // 模拟网络延迟
//     std::string command = "sudo tc qdisc add dev eth0 root netem delay 100ms";
//     if (system(command.c_str()) != 0) {
//         LOGE("无法引入网络延迟");
//     }

//     LOGI("网络延迟测试结束");
// }

// int main() {
//     // 执行网络延迟测试
//     testNetworkDelay();

//     return 0;
// }
